[小ネタ] AWS Step Functions ステートマシンの IAM ロール一覧を取得したい
こんにちは!アノテーションの砂川です。
AWS Step Functions の IAM ロール一覧を取得したいなどの要望が多く聞かれましたので、CLI でやってみました!
なお、使用している AWS CLI バージョンは以下です。
$ aws --version aws-cli/2.12.6 Python/3.11.4 Darwin/23.1.0 exe/x86_64 prompt/off
結論
下記スクリプトで実現できます。
#!/bin/bash aws stepfunctions list-state-machines --query "stateMachines[].[stateMachineArn]" --output text | while read line do stateMachineArn=$(echo $line) aws stepfunctions describe-state-machine --state-machine-arn ${stateMachineArn} --query "[name,roleArn]" --output text done
概要としては、まず、list-state-machines でリージョン内のステートマシンの ARN の一覧を取得します。その後、取得された stateMachineArn のそれぞれに対して、describe-state-machine を実行し、name と IAM Role を抜き出すというものです。
やってみた
現在、以下のように list-state-machinesを利用して確認したところ、東京リージョンにステートマシンが3つあります。
$ aws stepfunctions list-state-machines --region ap-northeast-1 { "stateMachines": [ { "stateMachineArn": "arn:aws:states:ap-northeast-1:<アカウントID>:stateMachine:checker-dev", "name": "checker-dev", "type": "STANDARD", "creationDate": "2021-01-14T11:47:02.475000+09:00" }, { "stateMachineArn": "arn:aws:states:ap-northeast-1:<アカウントID>:stateMachine:sunagawa-test-1", "name": "sunagawa-test-1", "type": "STANDARD", "creationDate": "2024-05-07T11:07:42.393000+09:00" }, { "stateMachineArn": "arn:aws:states:ap-northeast-1:<アカウントID>:stateMachine:sunagawa-test-2", "name": "sunagawa-test-2", "type": "STANDARD", "creationDate": "2024-05-07T11:08:53.962000+09:00" } ] }
先ほどのスクリプトを実行します。下記結果にある通り、ちゃんと取得できました!
実行結果
$ sh get_state_machine_role.sh checker-dev arn:aws:iam::<アカウントID>:role/checker-dev-Role sunagawa-test-1 arn:aws:iam::<アカウントID>:role/service-role/StepFunctions-sunagawa-test-1-role sunagawa-test-2 arn:aws:iam::<アカウントID>:role/service-role/StepFunctions-sunagawa-test-2-role
まとめ
今回は、AWS CLI を用いてステートマシンの IAM ロール一覧を取得する方法についてご紹介しました
なお、本シェルスクリプトを作成するにあたり、以下の他社様の記事を参考にさせていただきました!こちらの記事にて上述のスクリプトで使用されている while read の使い方を解説してくださっているので見てみてください。いつもありがとうございます。
本記事がどなたかの参考になれば幸いです。
最後までお読みいただきありがとうございました!
参考文献
- list-state-machines — AWS CLI 2.15.45 Command Reference
- describe-state-machine — AWS CLI 2.15.45 Command Reference
- 【初心者向け】シェルスクリプトを書くなら「while read 変数名」を覚えるといいです!!
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。